package constants;

/**
 * This class contains various constants used by
 * by the application. All constants are categorized
 * in inner classes.
 */
public class Constants {

    /**
     * Constants related to external communication
     */
    public static class IO{
        /**
         * The standard file extension for saved states
         */
        public static final String file_ext_save = ".lus";

        /**
         * The standard file for program settings
         */
        public static final String file_settings = "ludo.properties";
    }

    /**
     * Constants related to the GUI. Sizes, pixel positions, title strings, etc.
     * These should not be used outside of the view package.
     * TODO: move these constants to the view package
     */
    public static class GUI{
        //Default strings
        /**
         * The title on the game window
         */
        public static final String main_window_title = "Ludo - The Next Generation";

        //GUI sizes
        /**
         * The width of the main game window
         */
        public static final int main_window_width = 800;

        /**
         * The height of the main game window
         */
        public static final int main_window_height = 650;

        /**
         * The side of a drawn square
         */
        public static final int squareSide = 45;

        /**
         * X-coordinate of the first square (squares[0])
         */
        public static final int playingfield_firstSquareX = 80;

        /**
         * Y-coordinate of the first square (squares[0])
         */
        public static final int playingfield_firstSquareY = 225;

        /**
         * The amount of empty horizontal space between squares
         */
        public static final int playingfield_spacingX = 10;

        /**
         * The amount of empty vertical space between squares
         */
        public static final int playingfield_spacingY = 2;

        //Other
        /**
         * The icon on the game window
         */
        public static final String main_window_icon = "img/Game-Board-Ludo-Circles-Full.gif";

    }

    /**
     * File paths to all available sounds
     */
    public static class Sounds{
        public static final String battle     = "sound/Battle.wav";
        public static final String battleLose = "sound/Battle Lose.wav";
        public static final String battleWin  = "sound/Battle Win.wav";
        public static final String bloodlust  = "sound/BloodLust!.wav";
        public static final String diethrow   = "sound/DieThrow.wav";
        public static final String jackass    = "sound/jackass.wav";
        public static final String loseGame   = "sound/LoseGame.wav";
        public static final String moveHome   = "sound/MoveHome.wav";
        public static final String moveOut    = "sound/MoveOut.wav";
        public static final String moveStep   = "sound/MoveStep.wav";
        public static final String newGame    = "sound/NewGame.wav";
        public static final String newTurn    = "sound/NewTurn.wav";
        public static final String quitter    = "sound/Quitter.wav";
        public static final String rageQuit   = "sound/RageQuit.wav";
        public static final String winGame    = "sound/WinGame.wav";
    }
}
